import request from '@/utils/request'

// 获取图形验证码
/**
 * 获取图形验证码的函数。
 * 该函数通过发送HTTP GET请求到指定的URL来获取图形验证码。
 * 它不接受任何参数，并返回一个包含图形验证码信息的响应。
 * @returns {Promise} 返回一个Promise对象，该对象解析为从服务器返回的响应。
 */
export const getPicCode = () => {
  // 发送GET请求到/captcha/image endpoint获取图形验证码
  return request.get('/captcha/image')
}
/**
 * 发送短信验证码
 * 该函数用于向指定的手机号码发送短信验证码。它通过向服务器发送一个包含验证码、验证码密钥和手机号码的请求来实现。
 * 主要用于用户注册、登录或其他需要验证用户身份的场景。
 * @param {string} captchaCode - 用户输入的验证码
 * @param {string} captchaKey - 验证码的密钥，用于验证验证码的合法性
 * @param {string} mobile - 需要发送验证码的手机号码
 * @returns {Promise} 返回一个Promise对象，该对象包含服务器的响应数据
 */
export const getMsgCode = (captchaCode, captchaKey, mobile) => {
  // 向服务器发送请求，发送短信验证码
  return request.post('/captcha/sendSmsCaptcha', {
    form: {
      captchaCode,
      captchaKey,
      mobile
    }
  })
}
/**
 * 用户通过手机和短信验证码进行登录
 * 本函数旨在通过发送包含用户手机号和短信验证码的请求，来实现用户的登录操作。
 * 它封装了请求的细节，对外提供了一个简洁的接口，调用者只需提供必要的登录信息即可。
 * @param {string} mobile - 用户的手机号码，用于身份验证的一部分。
 * @param {string} smsCode - 用户收到的短信验证码，用于验证请求的合法性。
 * @returns {Promise} 返回一个Promise对象，该对象在请求成功时解析为响应数据，在失败时拒绝。
 */
export const codeLogin = (mobile, smsCode) => {
  // 发送POST请求到'/passport/login'端点，提交登录表单数据
  return request.post('/passport/login', {
    form: {
      isParty: false,
      mobile,
      partyData: {},
      smsCode
    }
  })
}
